//
//  HMStatusModel.swift
//  01-SinaWeibo
//
//  Created by 周英培 on 16/5/24.
//  Copyright © 2016年 周英培. All rights reserved.
//

import UIKit

class HMStatusModel: NSObject {

    //MARK:属性
    //微博信息内容
    var text : String?
    
    ////自动匹配机型对应的平台
    //4 4s 5 5c 都是32的
    //之后的都是 64位
    //微博ID
    var id :Int64 = 0
    
    //微博创建时间
    var created_at : String?
    
    //微博来源
    var source : String?
    
    //转发数量
    var reposts_count : Int = 0
    
    //评论数量
    var comments_count : Int = 0
    
    //点赞量
    var attitudes_count : Int = 0
    
    
    
    
    //微博用户(里面包含其他所需要的信息)里面还是一个字典，不能直接赋值，需要在KVC里面做一些转变
    var user : HMUserModel?
    
    //转发微博内容里面的东西
    var retweeted_status : HMStatusModel?
    
    //原创微博配图模型数组
    var pic_urls : [HMPictureModel]?
    
    
    
    
    //利用KVC赋值
    init(dict : [String : AnyObject]) {
        
        super.init()
       
        setValuesForKeysWithDictionary(dict)
        
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        
        if key == "user" {
            
            if let dict = value as? [String : AnyObject] {
                
                user = HMUserModel(dict: dict)
                
            }
            
            return
        }
        
        if key == "retweeted_status" {
            
            if let dict = value as? [String : AnyObject] {
                
                retweeted_status = HMStatusModel(dict: dict)
                
            }
            
            return
        }
        
        if key == "pic_urls" {
            
            if let array = value as? [[String : AnyObject]] {
                
                //定义一个模型数组
                var picArrM = [HMPictureModel]()
                
                //遍历
                for item in array {
                    
                    //字典转模型
                    let picM = HMPictureModel(dict: item)
                    
                    //添加
                    picArrM.append(picM)
                    
                }
                
                //赋值保存
                pic_urls = picArrM
            }
            
            return
        }
        
        //这句话放在下面会减少一次判断赋值
        super.setValue(value, forKey: key)
    }
    
    //过滤
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
    
}
